In recent years, the number of enterprises relying on cloud computing to meet their computing needs has substantially increased. Many enterprises are able to cut costs by simply purchasing cloud computing services from hosting service providers that maintain cloud computing facilities. As a result, these enterprises eliminate a heavy investment in facilities, security, upgrades, and operating expenses. Cloud computing is typically carried out in computing facilities that house a vast array of networked physical machines (“PMs”), data-storage devices, and network routers. The facilities use virtualization to efficiently and cost effectively run computing processes on one or more connected PMs. With virtualization, one or more PMs are partitioned into multiple independent virtual machines (“VMs”) that function independently and appear to users as actual PMs. VMs can be moved around and scaled up or down as needed without affecting the user's experience.
In order to maintain computing facility operations and execution of applications, many physical and virtual computational resources, such as processors, memory, and network connections, and other data-generating entities are monitored over time. Data-generating entities generate time-series data that is collected, analyzed, and presented for human understanding. An alert is typically generated when the data violates a hard threshold so that a user can identify anomalies. However, because hard thresholds are static while data-generating entities may change over time, the likelihood of generating a false positive alert (i.e., an alert that incorrectly indicates a problem) or a false negative alert (i.e., an alert not given when there is a problem) based on the hard thresholds increases.